// import Vue from 'vue'
// import 'normalize.css';
// import App from '@/views/app'
// Vue.config.productionTip = false
// new Vue({
//     el: '#app',
//     render: h => h(App)
// })



import _ from 'lodash';
import '@assets/css/_rest.scss';
import '@assets/css/style.css';
// import { XHR } from '@services'
// import Icon from './pic.jpg';
// import Data from './data.xml';

function sayable(target){
    target.prototype.say  = function(message){
        console.log(message)
    }
}

@sayable
class Person{
  constructor (...args) {
    
  }
  static apiDomain = '11'
  static fn() {
        console.log('sss');
    }
}

var person = new Person();
person.say("good bye");  //"good bye"
console.log(Person.apiDomain)
//  Person.fn()

 // document.getElementById("jd").onclick=function() {
 //  alert(2)
 //  // window.location.href="coupon.jd.com/ilink/couponActiveFront/front_index.action?key=916a6211557b457c93e8ecfe9a92a471&roleId=13957302&to=https://mall.jd.com/index-1000010603.html"
 // }

// class Pack {
//     @log('读取package.json文件')
//     step1() {
//         // do something...
//         // 没有修饰器之前，我们通常把console.log放到这里写
//         // 放到函数里面写会有两个坏处
//         //     1.console和业务无关，会破坏函数单一性原则
//         //     2.如果要删除所有的console，那我们只能深入到每一个方法中
//     }
//     @log('合并webpack配置文件')
//     step2() {
//         // do something...
//     }
// }

// function log(value) {
//     return function (target, name, descriptor) {
//         // 在这里，我们还可以拿到函数的参数，打印更加详细的信息
//         console.log(value)
//     }
// }

// let pack = new Pack()
// pack.step1()
// pack.step2()

